package com.shujia.base.day04

import scala.io.{Codec, Source}


/**
 * 隐式转换变量
 */
object Demo29Implicit {
  def main(args: Array[String]): Unit = {
    //    Source.fromFile("scala/data/students.txt")(Codec("GBK"))

    //在函数或方法上面的implicit叫做隐式转换参数，需要传入一个隐式转换变量
    def fun1(i1: Int)(implicit i2: Int): Int = {
      i1 + i2 + 1000
    }

    implicit val a:Int = 100

//    val f1: Int => Int = fun1(100)
//    val i: Int = f1(200)
//    println(i)

    //调用fun1函数的时候，默认可以只穿第一个值，第二个会寻找当前object中的隐式转换变量，如果有类型符合的，自动传入。
    val i2: Int = fun1(100)
    println(i2)


  }
}
